package com.qhong.spring;

import java.util.Map;

/**
 * Ioc框架的容器接口
 * @author ranger
 *
 */
public interface Context {



	/**
	 * 用于获得容器中的所有对象
	 * @return
	 */
	Map<String,Object> getObjects();

	/**
	 * 用于获得容器中的所有业务控制器对象
	 * @return
	 */
	Map<String,Object> getControllerObjects();


	/**
	 * 用于增加容器中的对象
	 * @param key
	 * @param value
	 */
	void addObject(String key, Object value);

	/**
	 * 根据类的类型以及设置的对象名返回容器对象
	 * 如果传入的类型容器中有对应key的对象，而且返回类型是兼容的，直接返回对应的对象。
	 * 如果传入的类型容器中有没有对应key的对象，那么判断传入的类型是否和容器的对象的找到唯一配置的。
	 * 如果传入类型唯一匹配，返回对象。如果没有或者配配多个对象，都报一个RuntimeException异常
	 * @param classType
	 * @return
	 */
	Object getObject(Class<?> classType,String key);



}
